#include <iostream>
using namespace std;

/*
    纯虚函数: 是虚函数的一种特例，只有声明，没有源码
        作用：提供统一的接口，让子类实现
        语法：需要定义一个类，在这个类声明纯虚函数
            virtual 返回值类型 函数名(参数列表) = 0;
            返回值 形参  ==> 依据个人的实际需要
    抽象类：
        只要一个类中声明了纯虚函数，这个类就是抽象类
        特点：
            1.抽象类无法创建对象
            2.抽象类作用是提供接口声明，让子类继承抽象类，去实现抽象类提供的接口
                子类必须实现抽象类中的所有接口，如果有一个纯虚函数没有实现，那么子类依旧是抽象类
    
*/

//抽象类
class Interface
{
public:
    // 声明纯虚函数
    virtual bool compare() = 0;
};


class Screen1 : public Interface
{
public:
    // 实现纯虚函数
    bool compare()
    {
        cout << "游戏场景1依据人物的经验值比较" << endl;
        return true;
    }
};
class Screen2 : public Interface
{
public:
    // 实现纯虚函数
    bool compare()
    {
        cout << "游戏场景2依据人物的武力值比较" << endl;
        return true;
    }
};

class Screen3 : public Interface
{
public:
    // 实现纯虚函数
    bool compare()
    {
        cout << "游戏场景3依据人物的等级比较" << endl;
        return true;
    }
};


int main()
{
    // Interface i1; 抽象类无法创建对象

    Screen1 s1;
    s1.compare();

    Screen2 s2;
    s2.compare();

    Screen3 s3;
    s3.compare();



    return 0;
}